-
Notifications
You must be signed in to change notification settings - Fork 44
Localization with Language Catalogs #78
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
This new direction looks promising, @dgovil ! We have several suggestions that we think further simplify, and foster more efficient evaluation - since we actually do want to keep a future OpenExec implementation in mind. Firstly, just a couple things to verify/clarify, that enables one of our suggestions, but is of concern even in the current proposal:
Catalog EncodingThe separation of behavior that does inherit down namespace and that which doesn't seems logical. In the interests of data locality (and survival under referencing), and efficient evaluation, we'd like to propose changing the proposed LocalizationCatalog/LocalizedString schemas into a single
Inheritance Override/Merge of Catalogs?The current proposal mentions namespace inheritance of catalog binding, such that closest-binding-to-prim wins. We can match that behavior by stipulating that the closest ancestor with localized MetadatumDo we really need this? Can presence of Variants and VariantSetsWe're a bit concerned about allowing localization directly on scene object identifiers like variant and variantSet names, for the potential for inadvertent confusion and mis-authoring. We would propose instead tying this aspiration to the proposed Thanks for pushing this forward; it seems like a valuable addition. |
|
Hey Spiff, thanks for the in-depth response. Regarding the first couple questions:
Catalog Encoding I don't have a strong preference for whether the language identifier is foremost or the string itself. I think there's probably a benefit of having the language first, so you can just keep the parts of the dictionary you need. I do think people might want to (in the future) also apply localization to asset paths like audio and textures. I don't think we need to tackle that any time soon, but I think it's worth considering while making the catalog encoding. But I think a dictionary would scale fine there too. Inheritance Override/Merge of Catalogs? localized Metadatum One thing that someone did mention is that HTML allows for the inverse Variants and VariantSets |
|
Oh but on the topic of long strings it just occurred to me that only the lookup string length should matter, not the final translated string length. In that case , yes, the lookups can be short. Often we'd just put some kind of identifier in like "LOC_Level1_Desc" and then have the actual long string be part of the language catalog. I think as long as we provide guidance, short strings should be fine |
|
That all sounds great, and that kind of planned/structured use of long strings is clever and sounds great. Regarding timevarying, yes that's exactly what I was thinking, also - the translations are entirely value-based, and shouldn't care what timeCode the value was extracted from. |
Description of Proposal
This proposal is an update to the prior Language proposal, which tries to incorporate much of the feedback since the initial proposal.
It also tries to incorporate some of the use cases that have arisen since then, as well as tries to aggregate common patterns with other localization formats.
Link to Rendered Proposal
The primary change is that localizations have been moved from the prims themselves to a separate localization catalog.
This reduces a few of the concerns folks had including:
I believe this is a more elegant system as a result of that feedback loop.
Contributing